<?xml version="1.0" encoding="utf-8"?>
<xs:schema elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:import schemaLocation="http://www.osble.org/Services/UploaderWebService.svc?xsd=xsd2" namespace="http://schemas.datacontract.org/2004/07/OSBLE.Models.Services.Uploader" />
  <xs:import schemaLocation="http://www.osble.org/Services/UploaderWebService.svc?xsd=xsd3" namespace="http://schemas.microsoft.com/2003/10/Serialization/Arrays" />
  <xs:element name="DeleteFile">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="file" nillable="true" type="xs:string" />
        <xs:element minOccurs="0" name="courseId" type="xs:int" />
        <xs:element minOccurs="0" name="authToken" nillable="true" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="DeleteFileResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="DeleteFileResult" type="xs:boolean" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GetFakeFileListing">
    <xs:complexType>
      <xs:sequence />
    </xs:complexType>
  </xs:element>
  <xs:element name="GetFakeFileListingResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element xmlns:q1="http://schemas.datacontract.org/2004/07/OSBLE.Models.Services.Uploader" minOccurs="0" name="GetFakeFileListingResult" nillable="true" type="q1:FileListing" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GetFakeDirectoryListing">
    <xs:complexType>
      <xs:sequence />
    </xs:complexType>
  </xs:element>
  <xs:element name="GetFakeDirectoryListingResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element xmlns:q2="http://schemas.datacontract.org/2004/07/OSBLE.Models.Services.Uploader" minOccurs="0" name="GetFakeDirectoryListingResult" nillable="true" type="q2:DirectoryListing" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GetFakeParentDirectoryListing">
    <xs:complexType>
      <xs:sequence />
    </xs:complexType>
  </xs:element>
  <xs:element name="GetFakeParentDirectoryListingResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element xmlns:q3="http://schemas.datacontract.org/2004/07/OSBLE.Models.Services.Uploader" minOccurs="0" name="GetFakeParentDirectoryListingResult" nillable="true" type="q3:ParentDirectoryListing" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GetFileList">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="courseId" type="xs:int" />
        <xs:element minOccurs="0" name="authToken" nillable="true" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GetFileListResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element xmlns:q4="http://schemas.datacontract.org/2004/07/OSBLE.Models.Services.Uploader" minOccurs="0" name="GetFileListResult" nillable="true" type="q4:DirectoryListing" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GetFileUrl">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="fileName" nillable="true" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GetFileUrlResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="GetFileUrlResult" nillable="true" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GetLastModifiedDate">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="fileName" nillable="true" type="xs:string" />
        <xs:element minOccurs="0" name="courseId" type="xs:int" />
        <xs:element minOccurs="0" name="relativePath" nillable="true" type="xs:string" />
        <xs:element minOccurs="0" name="authToken" nillable="true" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GetLastModifiedDateResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="GetLastModifiedDateResult" type="xs:dateTime" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GetValidUploadLocations">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="authToken" nillable="true" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GetValidUploadLocationsResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element xmlns:q5="http://schemas.microsoft.com/2003/10/Serialization/Arrays" minOccurs="0" name="GetValidUploadLocationsResult" nillable="true" type="q5:ArrayOfKeyValueOfintstring" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="IsValidKey">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="authToken" nillable="true" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="IsValidKeyResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="IsValidKeyResult" type="xs:boolean" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="PostActivityMessage">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="message" nillable="true" type="xs:string" />
        <xs:element minOccurs="0" name="courseId" type="xs:int" />
        <xs:element minOccurs="0" name="authToken" nillable="true" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="PostActivityMessageResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="PostActivityMessageResult" type="xs:boolean" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="PrepCurrentPath">
    <xs:complexType>
      <xs:sequence>
        <xs:element xmlns:q6="http://schemas.datacontract.org/2004/07/OSBLE.Models.Services.Uploader" minOccurs="0" name="dirList" nillable="true" type="q6:DirectoryListing" />
        <xs:element minOccurs="0" name="courseId" type="xs:int" />
        <xs:element minOccurs="0" name="relativePathStart" nillable="true" type="xs:string" />
        <xs:element minOccurs="0" name="authToken" nillable="true" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="PrepCurrentPathResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="PrepCurrentPathResult" type="xs:boolean" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="SyncFile">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="fileName" nillable="true" type="xs:string" />
        <xs:element minOccurs="0" name="data" nillable="true" type="xs:base64Binary" />
        <xs:element minOccurs="0" name="courseId" type="xs:int" />
        <xs:element minOccurs="0" name="relativePath" nillable="true" type="xs:string" />
        <xs:element minOccurs="0" name="authToken" nillable="true" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="SyncFileResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="SyncFileResult" type="xs:boolean" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="UpdateListingOrder">
    <xs:complexType>
      <xs:sequence>
        <xs:element xmlns:q7="http://schemas.datacontract.org/2004/07/OSBLE.Models.Services.Uploader" minOccurs="0" name="listing" nillable="true" type="q7:DirectoryListing" />
        <xs:element minOccurs="0" name="courseId" type="xs:int" />
        <xs:element minOccurs="0" name="authToken" nillable="true" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="UpdateListingOrderResponse">
    <xs:complexType>
      <xs:sequence />
    </xs:complexType>
  </xs:element>
  <xs:element name="ValidateUser">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="userName" nillable="true" type="xs:string" />
        <xs:element minOccurs="0" name="password" nillable="true" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="ValidateUserResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="ValidateUserResult" nillable="true" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>